Amazon EC2インスタンスからAmazon Aurora MySQLクラスターに接続確認してみた
Amazon EC2インスタンスからAmazon Aurora MySQLクラスターに接続できるか確認したい
おのやんです。
みなさん、Amazon EC2(以下、EC2)インスタンスがAmazon Aurora(以下、Aurora) MySQLクラスターに繋がるか確認したいと思ったことはありませんか?私はあります。
EC2インスタンスやAuroraリソース・セキュリティグループなど、実際のリソース構築が完了した段階で接続確認を行いたいケースがあります。そんなときに、Aurora MySQLクラスターに対して正常に接続できるかを確認する方法をいくつかまとめてみました。
前提条件
今回は、検証用としてこのような構成のAWS環境を考えます。プライベートサブネットに配置したEC2インスタンスから、それぞれAurora MySQLクラスターのマスター・リーダーに接続します。EC2インスタンスとAurora MySQLクラスターは、それぞれセキュリティグループによって通信を制限されています。またEC2インスタンスがAurora MySQLクラスターに接続する際にMySQLをインストールが必要なので、インターネットへのアウトバウンド接続が可能なようにパブリックサブネットにNAT Gatewayを設置しています。
セキュリティグループの設定
まずは、RDSにアタッチされているセキュリティグループが適切に設定されているか確認します。EC2インスタンス上のMySQLクライアントは、Aurora MySQLクラスターに対して3306番ポート向けのTCP通信を行います。そのため、EC2のセキュリティグループからのTCP:3306の通信を許可しておきます。
またEC2にアタッチされているセキュリティグループは、MySQLクライアントのインストールが必要なので、アウトバウンドの通信は全開放しておきます。
MySQLへ接続
次に、EC2インスタンスにMySQLクライアントをインストールします。SSMなどでEC2インスタンスにアクセスし、MariaDBのクライアントをインストールします。
$ sudo dnf -y install mariadb105
MariaDBは、クライアントプロトコルに関してMySQLと互換性があります(参考)。同様の内容がこちらのブログでも紹介されていますので、もしよければ参考にしてください。
次に、MySQLクライアントのコマンドを実行します。まず、Aurora MySQLクラスターのマスターエンドポイントをマネジメントコンソールからコピーします。
マスターインスタンスに対しては、以下のコマンドを実行することで確認できます。
$ mysql -h <クラスターエンドポイント> -P 3306 -u <マスターユーザー名> -p
こちらのコマンドを実行し、Aurora MySQLクラスターのパスワードを入力します。正しいパスワードを入力すると、このように表示されます。こちらの画面が確認できれば、正常に接続できています。
Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 339 Server version: 5.7.12 MySQL Community Server (GPL) Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [(none)]>
リーダーインスタンスに関しては、先ほどのAurora MySQLクラスター画面のリーダーエンドポイントをコピーして、同様のコマンドを実行すれば確認できます。
$ mysql -h <リーダーエンドポイント> -P 3306 -u <マスターユーザー名> -p
Maria DBクライアントでAurora MySQLクラスターへの接続テストができる
以上、シンプルな手順ではありますが、Aurora MySQLクラスター接続確認の手順をまとめてみました。
AWSのサポートを受けなくても問題ない場合は、直接MySQLクライアントもインストールできます。こちらのブログも、よければ参考にしていただければと思います。
以上参考にされば幸いです。では!